<?php
function utf8($array)
{
	$new = array();
	foreach($array as $value)
	{
		//$new[] =  utf8_encode(trim($value));
		//$new[]  = mb_convert_encoding(trim($value), "ANSI","UTF-8");
		if(function_exists('iconv') )
		{
			$new[] = iconv("Windows-1252", "UTF-8", trim($value));
			//mb_convert_variables('UTF-8','CP1252,ASCII,UTF-8,ISO-8859-1',$_POST['dato']);
		}
		else
		{
			die("No se puede Converitr 'Windows-1252' a 'UTF-8' con iconv");
		}
	}
	return $new;
}
function obtener_nombres($array)
{
	$new = array();
	foreach($array as $key => $value)
	{
		if(empty($value)){continue;}
		$new[$value] = $key;
	}
	return $new;
}

require 'main.php';
if(isset($_POST["tabla"]) && in_array($_POST["tabla"],array('frutas','verduras','condimentos',"recetas","receta_descripcion"))):
	if(is_uploaded_file($_FILES['csv']['tmp_name']))
	{
		// verifica haya sido cargado el archivo
		$path=$_FILES['csv']['tmp_name'];
	}
	else
	{
		die("No se puede acceder al ARCHIVO :$path");
	}
	//Indicamos la ruta del Archivo CSV a verificar
	//$path = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'frutas-listado.csv';
	//cargamos el archivo en el Objeto "SplFileObject"
	// http://es2.php.net/manual/es/class.splfileobject.php
	$archivo = new SplFileObject($path );
	//Le indicamos que usaremos los Siguientes Indicadores
	//SplFileObject::READ_CSV = es un archivo del TIPO CSV
	// | = es como un Y a nivel binario, se encarga de unir
	//SplFileObject::SKIP_EMPTY = que se salte las Lineas Vacias
	$archivo->setFlags(SplFileObject::READ_CSV | SplFileObject::SKIP_EMPTY );
	//setCSVControl le indicamos las caracteristicas de nuestro CSV
	//http://es2.php.net/manual/es/splfileobject.setcsvcontrol.php
	$archivo->setCSVControl(system::getNotEmpty($_POST["separador"],"\t"),'"',"\\");
	//creamos nuestro contador y lo establecemos a 1
	$i = 0 ; 
	//creamos nuestro contador de registros agregados
	$agregados = 0;
	//mostramos el inicio de una tabla
	echo '<META HTTP-EQUIV="Content-Type" CONTENT="text/html" charset="utf8"/>';
	echo '<pre style="font-size:12px;">';
	$columnas = obtener_nombres($archivo->fgetcsv ());
	/*$columnas = array(
	'nombre' ,	'tmb',	'fot',	'minerales' ,	'vitaminas' ,	'proteinas',
	'calorias',	'prop' ,	'linkA' ,	'riesgos',	'linkB'		);/**/
	$verificar = db::select($_POST["tabla"],array("*"));
	$verificar->execute();
	$n = $verificar->rowCount();var_dump($n);
	if($n>0)
	{
		die("<h1>No puedes importar si la DB esta llena.<br/> VACIALA!!</h1>");
	}
	$consulta = db::insert($_POST["tabla"],array_keys($columnas));
	

	//LimitIterator es un Objecto que nos permite limitar en este Caso le indicamos
	//que se salte la primera linea la que tiene las cabeceras
	//http://es2.php.net/manual/es/class.limititerator.php
	foreach(new LimitIterator($archivo,1) as $linea)
	{
		//$linea contiene un array del CSV
		//list() se encarga de dar al ARRAY un nombre simbolico
		//http://es2.php.net/manual/es/function.list.php
		if(!is_array($linea) ){continue;}
		//list($Nombre,$tmb,$fot,$minerales,$vitaminas,$proteinas,$calorias,$prop,$linkA,$riesgos,$linkB) = utf8($linea);
		//$insertar=utf8($linea);
		 mb_convert_variables('UTF-8','CP1252,ASCII,UTF-8,ISO-8859-1',$linea);
		$insertar = $linea;
		//verificamos que la Variable $Nombre no este vacia en caso de estarlo hace un SALTO a la siguiente linea
		if(empty($insertar)){continue;}
		//substr se encarga de reducir los textos a un determinado tamaño
		//$prop = substr($prop,0,12);
		//$riesgos = substr($riesgos,0,12);
		$datos_a_insertar = array();
		foreach($columnas as $field => $key)
		{
			$datos_a_insertar[$field] = $insertar[$key];
		}
		if($consulta->execute($datos_a_insertar))
		{
			if($consulta->Rowcount()> 0)
			{
				echo "<span style='color:green'>". $insertar[0]." - " . $insertar[1] . "</span>";
				$agregados++;
			}
			else
			{
				echo "Error con <span style='color:red'>". $insertar[0]." - " . $insertar[1] . "</span> - ".$consulta->errorInfo(2);
			}
		}
		else
		{
			echo $consulta->errorInfo(2);
		}
		echo "\n";
	;
	//incrementamos nuestro contador
	$i++;
	}
	echo '<tr><th> Fueron agregados '.$agregados.' de un total de '.$i.' registros</th></tr>';
	echo '</pre>';
	//echo $i;

else:
?>
<form action="" method="post" enctype="multipart/form-data">
	<select name="tabla" id="">
		<option value="frutas">Frutas</option>
		<option value="verduras">Verduras</option>
		<option value="condimentos">Condimentos</option>
	</select>
	<input type="file" name="csv" />
	<label for="">
		<span>Separador del CSV</span>
		<input type="" value="" name="separador" placeholder="{TAB}" length="1" size="5"/>
	</label>
	<button type="submit">Enviar Archivo</button>
</form>
<?php
endif;
?>